package com.guanzhi.creation.factory.simpleFactory;

/**
 * 设计模式
 * <p> Package: com.guanzhi.creation.factory.simpleFactory </p>
 * <p> File: ShapeFactory.java </p>
 * <p> Description:  (创建型模式-工厂模式-静态工厂(简单工厂))</p>
 * <p> Date: 2024/4/13 22:56</p>
 *
 * @author 观之
 * @version 1.0 （代码版本）
 * @email <a href="mailto:guanzhi55634@aliyun.com">观之</a>（邮箱）
 * @date 2024/4/13 22:56
 * @since jdk17（jdk版本）
 */
public class ShapeFactory {

    /**
     * 静态工厂方法
     *
     * @param shapeType 形状类型
     * @return 具体示例
     */
    public static Shape getShape(String shapeType) {
        //违反开闭原则,无法对修改关闭,需修改代码
        if ("circle".equalsIgnoreCase(shapeType)) {
            return new CircleShape();
        } else if ("rectangle".equalsIgnoreCase(shapeType)) {
            return new RectangleShape();
        } else {
            throw new IllegalArgumentException("Invalid shape type: " + shapeType);
        }
    }
}
